home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS073.dsk / DISK SPACE 16.int < prev    next >
Text File  |  2012-02-16  |  5KB  |  172 lines

  1. 10 REM ***************************
  2. 20 REM *                         *
  3. 30 REM *      DISK SPACE 16      *
  4. 40 REM *                         *
  5. 50 REM *    BY LAWRENCE GUST     *
  6. 60 REM *                         *
  7. 70 REM *  12/3/80  VERSION 1.1   *
  8. 80 REM *                         *
  9. 90 REM ***************************
  10. 100 REM 3086,3087,3094
  11. 110 PRINT "<CTRL-D> BLOAD DISK SPACE 16.X": POKE 3086,17: POKE 3087,0: POKE 3094,1
  12. 120  POKE 3090,0: POKE 3091,32
  13. 130 DIM A$(10),B$(20)
  14. 140 GOSUB 840
  15. 150 CALL -936:VTAB 12:PRINT "INSERT DISK AND HIT RETURN":INPUT A$
  16. 160 CALL 3072
  17. 170 CALL -936
  18. 180 L=8192+(3*16)+8
  19. 190 VTAB 1:TAB 4:PRINT "          1111111111222222222233333"
  20. 200 VTAB 2:TAB 4:PRINT "01234567890123456789012345678901234"
  21. 210 FOR S=0 TO 15:VTAB (S+4):TAB 1:PRINT S:NEXT S
  22. 220 FOR A=0 TO 34
  23. 230 SF8= PEEK (L):S70= PEEK (L+1)
  24. 240 H=A+4
  25. 250 B15=(SF8>127)
  26. 260 IF B15 THEN SF8=SF8-128
  27. 270 B14=(SF8>63)
  28. 280 IF B14 THEN SF8=SF8-64
  29. 290 B13=(SF8>31)
  30. 300 IF B13 THEN SF8=SF8-32
  31. 310 B12=(SF8>15)
  32. 320 IF B12 THEN SF8=SF8-16
  33. 330 B11=(SF8>7)
  34. 340 IF B11 THEN SF8=SF8-8
  35. 350 B10=(SF8>3)
  36. 360 IF B10 THEN SF8=SF8-4
  37. 370 B9=(SF8>1)
  38. 380 IF B9 THEN SF8=SF8-2
  39. 390 B8=SF8
  40. 400 B7=(S70>127)
  41. 410 IF B7 THEN S70=S70-128
  42. 420 B6=(S70>63)
  43. 430 IF B6 THEN S70=S70-64
  44. 440 B5=(S70>31)
  45. 450 IF B5 THEN S70=S70-32
  46. 460 B4=(S70>15)
  47. 470 IF B4 THEN S70=S70-16
  48. 480 B3=(S70>7)
  49. 490 IF B3 THEN S70=S70-8
  50. 500 B2=(S70>3)
  51. 510 IF B2 THEN S70=S70-4
  52. 520 B1=(S70>1)
  53. 530 IF B1 THEN S70=S70-2
  54. 540 B0=S70
  55. 550 VTAB 4:TAB H:F=B0:GOSUB 780
  56. 560 VTAB 5:TAB H:F=B1:GOSUB 780
  57. 570 VTAB 6:TAB H:F=B2:GOSUB 780
  58. 580 VTAB 7:TAB H:F=B3:GOSUB 780
  59. 590 VTAB 8:TAB H:F=B4:GOSUB 780
  60. 600 VTAB 9:TAB H:F=B5:GOSUB 780
  61. 610 VTAB 10:TAB H:F=B6:GOSUB 780
  62. 620 VTAB 11:TAB H:F=B7:GOSUB 780
  63. 630 VTAB 12:TAB H:F=B8:GOSUB 780
  64. 640 VTAB 13:TAB H:F=B9:GOSUB 780
  65. 650 VTAB 14:TAB H:F=B10:GOSUB 780
  66. 660 VTAB 15:TAB H:F=B11:GOSUB 780
  67. 670 VTAB 16:TAB H:F=B12:GOSUB 780
  68. 680 VTAB 17:TAB H:F=B13:GOSUB 780
  69. 690 VTAB 18:TAB H:F=B14:GOSUB 780
  70. 700 VTAB 19:TAB H:F=B15:GOSUB 780
  71. 710 L=L+4:NEXT A
  72. 720 VTAB 21:TAB 11:PRINT "FREE SECTORS = ";FR
  73. 730 FR=0
  74. 740 PRINT :INPUT "AGAIN?",A$
  75. 750 IF A$="Y" OR A$="YES" THEN 150
  76. 760 CALL -936
  77. 770 END 
  78. 780 IF F=0 THEN  POKE 50,63
  79. 790 IF F=0 THEN PRINT "*"
  80. 800 IF F=1 THEN PRINT "'"
  81. 810  POKE 50,255
  82. 820 IF F=1 THEN FR=FR+1
  83. 830 RETURN 
  84. 840 CALL -936
  85. 850 B$="DISK SPACE 16":GOSUB 1130
  86. 860 B$="BY LAWRENCE GUST":GOSUB 1130
  87. 870 CALL -936:PRINT "                INSTRUCTIONS:"
  88. 880 PRINT :PRINT :PRINT 
  89. 890 PRINT "THIS PROGRAM WILL SHOW YOU, WITH THE"
  90. 900 PRINT 
  91. 910 PRINT "USE OF A CHART, EXACTLY HOW MUCH ROOM"
  92. 920 PRINT 
  93. 930 PRINT "(AND WHERE IT IS) YOU HAVE ON YOUR"
  94. 940 PRINT 
  95. 950 PRINT "MINI-DISK."
  96. 960 PRINT 
  97. 970 PRINT :PRINT "THE DISK YOU WISH TO READ MUST"
  98. 980 PRINT 
  99. 990 PRINT "BE IN DRIVE 1.  THE SLOT YOUR"
  100. 1000 PRINT :PRINT "DISK CONTROLLER BOARD IS PLUGGED IN"
  101. 1010 PRINT :PRINT "MUST BE SLOT 6."
  102. 1020 VTAB 23:PRINT "HIT RETURN WHEN READY":INPUT "",A$:CALL -936
  103. 1030 PRINT "****************************************":PRINT 
  104. 1040 PRINT :PRINT "  YOU MUST HAVE THE 16 SECTOR PROMS ON "
  105. 1050 PRINT :PRINT "       YOUR DISK CONTROLLER BOARD<CTRL-G>!"
  106. 1060 PRINT :PRINT :PRINT "****************************************"
  107. 1070 PRINT :PRINT :PRINT "IF YOU WISH TO EXIT THIS PROGRAM NOW,"
  108. 1080 PRINT :PRINT "TYPE 'EXIT'.  TO CONTINUE, TYPE"
  109. 1090 PRINT :PRINT "ANYTHING ELSE (OR HIT RETURN)"
  110. 1100 PRINT 
  111. 1110 INPUT A$:IF A$="EXIT" THEN 770
  112. 1120 RETURN 
  113. 1130 CALL -936
  114. 1140 VTAB 12:TAB 20- LEN(B$)/2:PRINT B$
  115. 1150 FOR A=1 TO 2000:NEXT A:RETURN 
  116. 1160 REM 
  117.  
  118.  
  119.  
  120. 1170 REM  PROGRAM LOGIC IS AS FOLLOWS
  121. 1180 REM ON TRACK 17, SECTOR 15 THE
  122. 1190 REM SECTOR USED LIST IS HIDDEN.
  123. 1200 REM THE EXACT FORMAT IS GIVEN
  124. 1210 REM IN THE DOS MANUAL.  TWO
  125. 1220 REM BYTES REPRESENT THE 16
  126. 1230 REM SECTORS PER TRACK.  A 1
  127. 1240 REM INDICATES AN OPEN SECTOR.
  128. 1250 REM EVERY TIME DOS WANTS TO
  129. 1260 REM WRITE TO THE DISK IT LOOKS
  130. 1270 REM HERE TO FIND AN EMPTY
  131. 1280 REM SECTOR.
  132. 1290 REM 
  133. 1300 REM A SHORT BINARY FILE IS
  134. 1310 REM LOADED INTO MEMORY IN LINE
  135. 1320 REM 110.  THIS MACHINE LANGUAGE
  136. 1330 REM SUBROUTINE, STARTING AT
  137. 1340 REM $0C00 (HEX, OR 3072
  138. 1350 REM DECIMAL) USES A PART OF
  139. 1360 REM DOS TO READ THE ABOVE
  140. 1370 REM SECTOR.
  141. 1380 REM 
  142. 1390 REM IN LINES 150 AND 160, THE
  143. 1400 REM PROGRAM PROMPTS THE USER
  144. 1410 REM TO INSERT A DISK INTO THE
  145. 1420 REM DRIVE.  A SIMPLE CALL 3072
  146. 1430 REM LOADS THE SECTOR INTO THE
  147. 1440 REM MEMORY STARTING AT $2000
  148. 1450 REM (HEX, OR 8192 DECIMAL)
  149. 1460 REM 
  150. 1470 REM THE INFORMATION ON THIS
  151. 1480 REM SECTOR IS PUT ON HI-RES
  152. 1490 REM PAGE 1.
  153. 1500 REM 
  154. 1510 REM LINES 190 THRU 210 SET UP
  155. 1520 REM THE SCREEN.
  156. 1530 REM 
  157. 1540 REM STARTING IN LINE 220 A LOOP
  158. 1550 REM IS SET UP TO READ THE DATA
  159. 1560 REM OFF OF THE HI-RES PAGE AND
  160. 1570 REM DE-CODE IT.  THIS METHOD
  161. 1580 REM IS PROBABLY NOT THE FASTEST
  162. 1590 REM NOR THE MOST EFFICENT, BUT
  163. 1600 REM DID THE JOB WITH A MINIMUM
  164. 1610 REM OF THINKING.
  165. 1620 REM 
  166. 1630 REM AS THE DATA IS DECODED, IT
  167. 1640 REM IS SHOWN ON THE SCREEN.
  168. 1650 REM A FULL (OCCUPIED) SECTOR
  169. 1660 REM IS SHOWN AS AN INVERSE "*"
  170. 1670 REM AND AN EMPTY (OPEN) SECTOR
  171. 1680 REM IS SHOWN AS A NORMAL "'"
  172.